'''
1. A、B、C、D、E 五人在某天夜里合伙去捕鱼，到第二天凌晨时都疲惫不堪，于是各自找地方睡觉。
日上三杆，A 第一个醒来，他将鱼分为五份，把多余的一条鱼扔掉，拿走自己的一份。B 第二个醒来，也将鱼分为五份，把多余的一条鱼扔掉拿走自己的一份。
C、D、E依次醒来，也按同样的方法拿鱼。问他们至少捕了多少条鱼?
'''
'''
def main():
    n=0
    while True:
        fish=n*5+1
        total, enough = n, True
        for i in range(5):
            if (total - 1) % 5 == 0:
                total = (total - 1) // 5 * 4
            else:
                enough = False
                break
        if enough:
            print(f'总共有{n}条鱼')
            break
        n += 1
'''
'''
2. 有一对兔子，从出生后第3个月起每个月都生一对兔子，小兔子长到第三个月后每个月又生一对兔子，假如兔子都不死，问每个月的兔子总数为多少？（输出前40个月即可）
'''
def main():
    a, b = 0,1
    i = int(input("输入月："))
    for i in range(1, i+1):
        print('第%d个月兔子的数量为%d只' % (i,b))
        a, b = b, a+b
if __name__ == '__main__':
    main()

'''
3. 打印出所有的"水仙花数"，所谓"水仙花数"是指一个三位数，其各位数字立方和等于该数 本身。例如：153是一个"水仙花数"，因为153=1的三次方＋5的三次方＋3的三次方。
'''
'''
def sxhs(x):
    if x<100 or x>999:
        print("输入的数据有误")
        return
    sx=str(x)
    bai=int(sx[0])
    shi=int(sx[1])
    ge=int(sx[2])
    if pow(ge,3)+pow(shi,3)+pow(bai,3)==x:
        return True
    return False

def main():
    ls=list()
    for i in range (100,1000):
        if sxhs(i):
            ls.append(i)
    print("水仙花数有")
    for num in ls:
        print("%d "%(num),end="")
    print()

if __name__ == '__main__':
    main()
'''
'''
4. 输入两个正整数m和n，设计函数求其最大公约数和最小公倍数。
'''
'''
def gongyue(x,y):
    #x较小y较大
    if x>y:#比较两个数的值
        x,y=y,x
    if x==0:
        return y
    return gongyue(y%x,x)
def gongbei(x,y):
    return x*y//gongyue(x,y)
def main():
    m=int(input("请输入一个正整数:"))
    n=int(input("请输入另外一个正整数:"))
    print("这两个数之间的最大公约数是",gongyue(m,n))
    print("这两个数之间的最大公倍数是",gongbei(m, n))
if __name__ == '__main__':
    main()
'''
'''
5. 求s=a+aa+aaa+aaaa+aa...a的值，其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加)，几个数相加有键盘控制。
'''
'''
a=int(input('请输入数字：'))
n=int(input("请输入要加几次："))
s=0
t=1
for i in range(1,n+1):
    s+=a
    a+=2*10**i
    t+=1
print("总和为",s)
'''
'''
6. 一个数如果恰好等于它的因子之和，这个数就称为"完数"。例如6=1＋2＋3.编程找出1000以内的所有完数。（提示：分解因数）
'''
'''
def wanshu(x):
    if x<2:
        print("输入数字有误重新输入")
        return
    yinzi=list()
    for i in range(1,x//2+1):
        if x%i==0:
            yinzi.append(i)

    if sum(yinzi)==x:
        return True
    return False

def main():
    wanshu_list=list()
    for i in range(2,1001):
        if wanshu(i):
            wanshu_list.append(i)

    print("1000以内的完数有：")
    for num in wanshu_list:
        print("%d "%(num),end="")

if __name__ == '__main__':
    main()
'''